package com.sunny.fetch.pojo;

import javax.persistence.*;

@Table(name = "f_fund_basic")
public class FFundBasic {
    @Id
    private Long tid;

    /**
     * 基金代码
     */
    @Column(name = "ts_code")
    private String tsCode;

    /**
     * 简称
     */
    private String name;

    /**
     * 管理人
     */
    private String management;

    /**
     * 托管人
     */
    private String custodian;

    /**
     * 投资类型
     */
    @Column(name = "fund_type")
    private String fundType;

    /**
     * 成立日期
     */
    @Column(name = "found_date")
    private String foundDate;

    /**
     * 到期日期
     */
    @Column(name = "due_date")
    private String dueDate;

    /**
     * 上市时间
     */
    @Column(name = "list_date")
    private String listDate;

    /**
     * 发行日期
     */
    @Column(name = "issue_date")
    private String issueDate;

    /**
     * 退市日期
     */
    @Column(name = "delist_date")
    private String delistDate;

    /**
     * 发行份额(亿)
     */
    @Column(name = "issue_amount")
    private Float issueAmount;

    /**
     * 管理费
     */
    @Column(name = "m_fee")
    private Float mFee;

    /**
     * 托管费
     */
    @Column(name = "c_fee")
    private Float cFee;

    /**
     * 存续期
     */
    @Column(name = "duration_year")
    private Float durationYear;

    /**
     * 面值
     */
    @Column(name = "p_value")
    private Float pValue;

    /**
     * 起点金额(万元)
     */
    @Column(name = "min_amount")
    private Float minAmount;

    /**
     * 预期收益率
     */
    @Column(name = "exp_return")
    private Float expReturn;

    /**
     * 业绩比较基准
     */
    private String benchmark;

    /**
     * 存续状态D摘牌 I发行 L已上市
     */
    private String status;

    /**
     * 投资风格
     */
    @Column(name = "invest_type")
    private String investType;

    /**
     * 基金类型
     */
    private String type;

    /**
     * 受托人
     */
    private String trustee;

    /**
     * 日常申购起始日
     */
    @Column(name = "purc_startdate")
    private String purcStartdate;

    /**
     * 日常赎回起始日
     */
    @Column(name = "redm_startdate")
    private String redmStartdate;

    /**
     * E场内O场外
     */
    private String market;

    public FFundBasic(Long tid, String tsCode, String name, String management, String custodian, String fundType, String foundDate, String dueDate, String listDate, String issueDate, String delistDate, Float issueAmount, Float mFee, Float cFee, Float durationYear, Float pValue, Float minAmount, Float expReturn, String benchmark, String status, String investType, String type, String trustee, String purcStartdate, String redmStartdate, String market) {
        this.tid = tid;
        this.tsCode = tsCode;
        this.name = name;
        this.management = management;
        this.custodian = custodian;
        this.fundType = fundType;
        this.foundDate = foundDate;
        this.dueDate = dueDate;
        this.listDate = listDate;
        this.issueDate = issueDate;
        this.delistDate = delistDate;
        this.issueAmount = issueAmount;
        this.mFee = mFee;
        this.cFee = cFee;
        this.durationYear = durationYear;
        this.pValue = pValue;
        this.minAmount = minAmount;
        this.expReturn = expReturn;
        this.benchmark = benchmark;
        this.status = status;
        this.investType = investType;
        this.type = type;
        this.trustee = trustee;
        this.purcStartdate = purcStartdate;
        this.redmStartdate = redmStartdate;
        this.market = market;
    }

    public FFundBasic() {
        super();
    }

    /**
     * @return tid
     */
    public Long getTid() {
        return tid;
    }

    /**
     * @param tid
     */
    public void setTid(Long tid) {
        this.tid = tid;
    }

    /**
     * 获取基金代码
     *
     * @return ts_code - 基金代码
     */
    public String getTsCode() {
        return tsCode;
    }

    /**
     * 设置基金代码
     *
     * @param tsCode 基金代码
     */
    public void setTsCode(String tsCode) {
        this.tsCode = tsCode;
    }

    /**
     * 获取简称
     *
     * @return name - 简称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置简称
     *
     * @param name 简称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取管理人
     *
     * @return management - 管理人
     */
    public String getManagement() {
        return management;
    }

    /**
     * 设置管理人
     *
     * @param management 管理人
     */
    public void setManagement(String management) {
        this.management = management;
    }

    /**
     * 获取托管人
     *
     * @return custodian - 托管人
     */
    public String getCustodian() {
        return custodian;
    }

    /**
     * 设置托管人
     *
     * @param custodian 托管人
     */
    public void setCustodian(String custodian) {
        this.custodian = custodian;
    }

    /**
     * 获取投资类型
     *
     * @return fund_type - 投资类型
     */
    public String getFundType() {
        return fundType;
    }

    /**
     * 设置投资类型
     *
     * @param fundType 投资类型
     */
    public void setFundType(String fundType) {
        this.fundType = fundType;
    }

    /**
     * 获取成立日期
     *
     * @return found_date - 成立日期
     */
    public String getFoundDate() {
        return foundDate;
    }

    /**
     * 设置成立日期
     *
     * @param foundDate 成立日期
     */
    public void setFoundDate(String foundDate) {
        this.foundDate = foundDate;
    }

    /**
     * 获取到期日期
     *
     * @return due_date - 到期日期
     */
    public String getDueDate() {
        return dueDate;
    }

    /**
     * 设置到期日期
     *
     * @param dueDate 到期日期
     */
    public void setDueDate(String dueDate) {
        this.dueDate = dueDate;
    }

    /**
     * 获取上市时间
     *
     * @return list_date - 上市时间
     */
    public String getListDate() {
        return listDate;
    }

    /**
     * 设置上市时间
     *
     * @param listDate 上市时间
     */
    public void setListDate(String listDate) {
        this.listDate = listDate;
    }

    /**
     * 获取发行日期
     *
     * @return issue_date - 发行日期
     */
    public String getIssueDate() {
        return issueDate;
    }

    /**
     * 设置发行日期
     *
     * @param issueDate 发行日期
     */
    public void setIssueDate(String issueDate) {
        this.issueDate = issueDate;
    }

    /**
     * 获取退市日期
     *
     * @return delist_date - 退市日期
     */
    public String getDelistDate() {
        return delistDate;
    }

    /**
     * 设置退市日期
     *
     * @param delistDate 退市日期
     */
    public void setDelistDate(String delistDate) {
        this.delistDate = delistDate;
    }

    /**
     * 获取发行份额(亿)
     *
     * @return issue_amount - 发行份额(亿)
     */
    public Float getIssueAmount() {
        return issueAmount;
    }

    /**
     * 设置发行份额(亿)
     *
     * @param issueAmount 发行份额(亿)
     */
    public void setIssueAmount(Float issueAmount) {
        this.issueAmount = issueAmount;
    }

    /**
     * 获取管理费
     *
     * @return m_fee - 管理费
     */
    public Float getmFee() {
        return mFee;
    }

    /**
     * 设置管理费
     *
     * @param mFee 管理费
     */
    public void setmFee(Float mFee) {
        this.mFee = mFee;
    }

    /**
     * 获取托管费
     *
     * @return c_fee - 托管费
     */
    public Float getcFee() {
        return cFee;
    }

    /**
     * 设置托管费
     *
     * @param cFee 托管费
     */
    public void setcFee(Float cFee) {
        this.cFee = cFee;
    }

    /**
     * 获取存续期
     *
     * @return duration_year - 存续期
     */
    public Float getDurationYear() {
        return durationYear;
    }

    /**
     * 设置存续期
     *
     * @param durationYear 存续期
     */
    public void setDurationYear(Float durationYear) {
        this.durationYear = durationYear;
    }

    /**
     * 获取面值
     *
     * @return p_value - 面值
     */
    public Float getpValue() {
        return pValue;
    }

    /**
     * 设置面值
     *
     * @param pValue 面值
     */
    public void setpValue(Float pValue) {
        this.pValue = pValue;
    }

    /**
     * 获取起点金额(万元)
     *
     * @return min_amount - 起点金额(万元)
     */
    public Float getMinAmount() {
        return minAmount;
    }

    /**
     * 设置起点金额(万元)
     *
     * @param minAmount 起点金额(万元)
     */
    public void setMinAmount(Float minAmount) {
        this.minAmount = minAmount;
    }

    /**
     * 获取预期收益率
     *
     * @return exp_return - 预期收益率
     */
    public Float getExpReturn() {
        return expReturn;
    }

    /**
     * 设置预期收益率
     *
     * @param expReturn 预期收益率
     */
    public void setExpReturn(Float expReturn) {
        this.expReturn = expReturn;
    }

    /**
     * 获取业绩比较基准
     *
     * @return benchmark - 业绩比较基准
     */
    public String getBenchmark() {
        return benchmark;
    }

    /**
     * 设置业绩比较基准
     *
     * @param benchmark 业绩比较基准
     */
    public void setBenchmark(String benchmark) {
        this.benchmark = benchmark;
    }

    /**
     * 获取存续状态D摘牌 I发行 L已上市
     *
     * @return status - 存续状态D摘牌 I发行 L已上市
     */
    public String getStatus() {
        return status;
    }

    /**
     * 设置存续状态D摘牌 I发行 L已上市
     *
     * @param status 存续状态D摘牌 I发行 L已上市
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * 获取投资风格
     *
     * @return invest_type - 投资风格
     */
    public String getInvestType() {
        return investType;
    }

    /**
     * 设置投资风格
     *
     * @param investType 投资风格
     */
    public void setInvestType(String investType) {
        this.investType = investType;
    }

    /**
     * 获取基金类型
     *
     * @return type - 基金类型
     */
    public String getType() {
        return type;
    }

    /**
     * 设置基金类型
     *
     * @param type 基金类型
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 获取受托人
     *
     * @return trustee - 受托人
     */
    public String getTrustee() {
        return trustee;
    }

    /**
     * 设置受托人
     *
     * @param trustee 受托人
     */
    public void setTrustee(String trustee) {
        this.trustee = trustee;
    }

    /**
     * 获取日常申购起始日
     *
     * @return purc_startdate - 日常申购起始日
     */
    public String getPurcStartdate() {
        return purcStartdate;
    }

    /**
     * 设置日常申购起始日
     *
     * @param purcStartdate 日常申购起始日
     */
    public void setPurcStartdate(String purcStartdate) {
        this.purcStartdate = purcStartdate;
    }

    /**
     * 获取日常赎回起始日
     *
     * @return redm_startdate - 日常赎回起始日
     */
    public String getRedmStartdate() {
        return redmStartdate;
    }

    /**
     * 设置日常赎回起始日
     *
     * @param redmStartdate 日常赎回起始日
     */
    public void setRedmStartdate(String redmStartdate) {
        this.redmStartdate = redmStartdate;
    }

    /**
     * 获取E场内O场外
     *
     * @return market - E场内O场外
     */
    public String getMarket() {
        return market;
    }

    /**
     * 设置E场内O场外
     *
     * @param market E场内O场外
     */
    public void setMarket(String market) {
        this.market = market;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", tid=").append(tid);
        sb.append(", tsCode=").append(tsCode);
        sb.append(", name=").append(name);
        sb.append(", management=").append(management);
        sb.append(", custodian=").append(custodian);
        sb.append(", fundType=").append(fundType);
        sb.append(", foundDate=").append(foundDate);
        sb.append(", dueDate=").append(dueDate);
        sb.append(", listDate=").append(listDate);
        sb.append(", issueDate=").append(issueDate);
        sb.append(", delistDate=").append(delistDate);
        sb.append(", issueAmount=").append(issueAmount);
        sb.append(", mFee=").append(mFee);
        sb.append(", cFee=").append(cFee);
        sb.append(", durationYear=").append(durationYear);
        sb.append(", pValue=").append(pValue);
        sb.append(", minAmount=").append(minAmount);
        sb.append(", expReturn=").append(expReturn);
        sb.append(", benchmark=").append(benchmark);
        sb.append(", status=").append(status);
        sb.append(", investType=").append(investType);
        sb.append(", type=").append(type);
        sb.append(", trustee=").append(trustee);
        sb.append(", purcStartdate=").append(purcStartdate);
        sb.append(", redmStartdate=").append(redmStartdate);
        sb.append(", market=").append(market);
        sb.append("]");
        return sb.toString();
    }
}